package dao;

import org.apache.ibatis.annotations.Param;
import pojo.Source;

import java.util.List;
import java.util.Map;

public interface SourceDao {
    /**
     * 查询所有医生的出诊号源信息
     */
    List<Source> getAllSources();

    /**
     * 查询指定日期的所有号源信息
     */
    List<Source> getSourcesByDate(@Param("date") String date);

    /**
     * 查询指定科室的号源信息
     */
    List<Source> getSourcesByDepartment(@Param("departmentName") String departmentName);

    /**
     * 当患者挂号后，更新剩余号源数量
     */
    int updateRemainingSources(@Param("doctorId") String doctorId,
                               @Param("date") String date,
                               @Param("morningWork") String morningWork);

    /**
     * 查看更新后的号源数量
     */
    Source getUpdatedSource(@Param("doctorId") String doctorId, @Param("date") String date);

    /**
     * 统计各科室的可预约号源数量
     */
    List<Map<String, Object>> countSourcesByDepartment(@Param("date") String date);

    /**
     * 查询指定医生的出诊时间表
     */
    List<Source> getDoctorSchedule(@Param("doctorId") String doctorId);
}